home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
serien
/
purity
/
nr.44
/
puritymag
/
rubriken.h
< prev
next >
Wrap
Text File
|
1995-02-26
|
4KB
|
186 lines
{$if not def PURITY_MAG_RUBRIKEN_H}
CONST
PURITY_MAG_RUBRIKEN_H = "P_M_R_H";
ZURÜCK = "Zurück zum Hauptmenü...";
PROCEDURE Setter(VAR txt:feld; VAR anz:INTEGER; tit:STRING);
VAR
ok : WORD;
lastg : p_Gadget;
t : ARRAY[1..2] OF TagItem;
it : p_IntuiText;
xx : STRING;
BEGIN
FOR i := 1 TO anz DO rubigad[i] := NIL;
gl1 := NIL;
gl1 := CreateContext(^gl1);
lastg := gl1;
UniPrint(wp,tit,3,2,0,1,TRUE,TRUE,^tattr);
j:=16;
x:=1;
IF anz <= 15 THEN x := (wp^.Width - 200) DIV 2;
FOR I := 1 TO anz DO
BEGIN
IF Length(txt[i]^)>23 THEN txt[i]^:=Copy(txt[i]^,1,23);
IF txt[i]^[1]<>"@" THEN
BEGIN
t[1] := TagItem(GT_Underscore,LONG("_"));
t[2].ti_Tag := TAG_DONE;
ng := NewGadget(x,j,200,14,
txt[i],^tattr,
i+7,PLACETEXT_IN,
vi,NIL);
xx := "_"+ZURÜCK;
IF ng.ng_GadgetText = "%ZURÜCK" THEN ng.ng_GadgetText := ^xx;
rubigad[i] := CreateGadgetA(BUTTON_KIND,lastg,^ng,^t);
IF ng.ng_GadgetText = xx THEN zurückgad := rubigad[i];
lastg := rubigad[i];
END ELSE
UniPrint(wp,Copy(txt[i]^,2,Length(txt[i]^)),3,2,x+((200-((Length(txt[i]^)-1)*8)) div 2),j+3,TRUE,FALSE,^tattr);
IF j+15>maxy THEN
BEGIN
x:=x+200;
j:=16;
END ELSE j:=j+15;
END;
FOR i := 1 TO anz DO
BEGIN
IF rubigad[i]<>NIL THEN ok := AddGadget(wp,rubigad[i],0);
END;
RefreshGadgets(wp^.FirstGadget,wp,NIL);
END;
PROCEDURE execu(bef : String; VAR txt:feld; VAR anz:INTEGER; tit:STRING);
VAR
ok : BOOLEAN;
l : LONG;
BEGIN
IF gl1<>NIL THEN
BEGIN
l := RemoveGList(wp,wp^.FirstGadget,-1);
FreeGadgets(gl1);
END;
gl1 := NIL;
CloseWindow(wp);
ok := CloseScreen(sp);
wp:=NIL;
sp:=NIL;
{ Programm starten ! }
err:=Execute(bef,0,fh);
ausf:="Ausführung hat nicht geklappt!";
If err=DOSFALSE Then
Begin
dd:=DosWrite(fh,^ausf,30);
End;
Delay(50);
OpenStuff;
Setter(txt,anz,tit);
END;
PROCEDURE SetRubi(VAR txt,bef:feld; VAR anz:INTEGER; tit:STRING);
VAR
ok : WORD;
dummy : BOOLEAN;
BEGIN
IF gl<>NIL THEN
BEGIN
ok := removeGList(wp,wp^.FirstGadget,-1);
FreeGadgets(gl);
END;
gl := NIL;
Setter(txt,anz,tit);
dummy := FALSE;
REPEAT
msg := p_IntuiMessage(WaitPort(wp^.UserPort));
msg := GT_GetIMsg(wp^.UserPort);
class := msg^.Class;
code := msg^.Code;
qual := msg^.Qualifier;
IF class IN [IDCMP_GADGETUP, IDCMP_GADGETDOWN] THEN
BEGIN
KlickG := msg^.IAddress;
GadNum := KlickG^.GadgetID;
END;
GT_ReplyIMsg(msg);
CASE class OF
IDCMP_RAWKEY :
CASE code OF
21: BEGIN
IF zurückgad<>NIL THEN ButSelecter(wp,zurückgad);
dummy := TRUE;
END;
ELSE END;
IDCMP_GADGETUP:
CASE GadNum OF
8..47: BEGIN
IF txt[GadNum-7]^ = "%ZURÜCK" THEN dummy := TRUE
ELSE
execu(bef[GadNum-7]^,txt,anz,tit);
END;
48 : dummy := TRUE;
ELSE END;
ELSE END;
UNTIL dummy;
zurückgad := NIL;
IF gl1<>NIL THEN
BEGIN
FreeGadgets(gl1);
ok := RemoveGList(wp,wp^.FirstGadget,-1);
END;
gl1 := NIL;
Cls;
END;
PROCEDURE Forum;
BEGIN
Cls;
SetRubi(fortxt,forbef,foranz,forumm);
END;
PROCEDURE Newss;
BEGIN
Cls;
SetRubi(hspastxt,hspasbef,hspasanz,hsp);
END;
PROCEDURE Allgemeines;
BEGIN
Cls;
SetRubi(alltxt,allbef,allanz,allge);
END;
PROCEDURE pcqq;
BEGIN
Cls;
SetRubi(pcqtxt,pcqbef,pcqanz,pccq);
END;
PROCEDURE kickk;
BEGIN
Cls;
SetRubi(kicktxt,kickbef,kickanz,kikk);
END;
PROCEDURE Anleitungen;
BEGIN
Cls;
SetRubi(anltxt,anlbef,anlanz,anll);
END;
PROCEDURE liesmz;
BEGIN
ScreenToBack(sp);
err:=Execute(lies_mich_zuerst,0,fh);
If err=DOSFALSE Then
BEGIN
dd:=DosWrite(fh,^ausf,30);
Delay(50);
END;
ScreenToFront(sp);
END;
{$endif}